创建 KRtcEngine 实例。
Declared in KRtcEngine.java
支持版本: 6.0.0 及以上。
参数名 | 类型 | 描述 |
---|---|---|
config | KRtcEngineConfig | KRtcEngine 实例的配置,详见 KRtcEngineConfig。 |
详情描述: KRTC Native SDK 只支持每个 app 创建一个 KRtcEngine 实例。
调用时机: 请确保在调用其他 API 前先调用该方法创建并初始化 KRtcEngine。
注意事项: KRtcEngine 类的所有接口函数,如无特殊说明,都是异步调用,对接口的调用建议在同一个线程进行。
使用限制: 无
返回值:
销毁 KRtcEngine 实例。
Declared in KRtcEngine.java
支持版本: 6.0.0 及以上。
详情描述: 该方法释放 SDK 使用的所有资源。有些 app 只在用户需要时才进行实时音视频通信,不需要时则将资源释放出来用于其他操作,该方法适用于此类情况。调用 destroy 方法后,你将无法再使用 SDK 的其它方法和回调。如需再次使用实时音视频通信功能,你必须重新调用 create 方法创建一个新的 KRtcEngine 实例。
注意事项:
该方法为同步调用,需要等待 KRtcEngine 实例资源释放后才能执行其他操作,所以我们建议在子线程中调用该方法,避免主线程阻塞。
此外,我们不建议在 SDK 的回调中调用 destroy,否则由于 SDK 要等待回调返回才能回收相关的对象资源,会造成死锁。
使用限制: 如需在销毁后再次创建 KRtcEngine 实例,需要等待 destroy 方法执行结束后再创建实例。
查询 SDK 版本号。
Declared in KRtcEngine.java
支持版本: 6.0.0 及以上。
详情描述: 查询 SDK 版本号,当前的 SDK 版本号,格式为字符串。例如:6.0.0。
调用时机: 该方法在加入频道前后都能调用。
注意事项:
该方法为同步调用。
返回值: 返回当前的 SDK 版本号。
通过 JSON 配置 SDK 提供技术预览或特别定制功能。
Declared in KRtcEngine.java
支持版本: 6.0.0 及以上。
参数名 | 类型 | 描述 |
---|---|---|
parameters | String | JSON 字符串形式的参数。 |
详情描述: 通过 JSON 配置 SDK 提供技术预览或特别定制功能。如果JSON解析失败会返回KWarningCodeSetParametersParseFailed。
返回值:
开始直播推流。
Declared in KRtcEngine.java
支持版本: 6.0.0 及以上。
参数名 | 类型 | 描述 |
---|---|---|
token | String | 在 app 服务器端生成的用于鉴权的 Token。详见使用 Token 鉴权。 |
channelId | String | 标识通话的频道名称,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符): • 26 个小写英文字母 a-z • 26 个大写英文字母 A-Z • 10 个数字 0-9 • 空格 • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", "," |
streamUrl | String | 推流地址,需要业务层根据指定的规则生成,比如:rtmp://sample.com/app_name/stream_name?ksSecret=1234224247ebd33b74e02234240695d&ksTime=634910c4。 |
详情描述: 该方法可以向指定的地址推直播流。
相关回调:
返回值:
停止直播推流。
Declared in KRtcEngine.java
支持版本: 6.0.0 及以上。
参数名 | 类型 | 描述 |
---|---|---|
channelId | String | 标识通话的频道名称,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符): • 26 个小写英文字母 a-z • 26 个大写英文字母 A-Z • 10 个数字 0-9 • 空格 • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", "," |
详情描述: 该方法可以停止指定频道内的直播流。
返回值:
设置推流端重连次数
Declared in KRtcEngine.java
支持版本: 6.0.0 及以上。
参数名 | 类型 | 描述 |
---|---|---|
count | int | 重连次数 |
详情描述: 当 SDK 与服务器异常断开连接时,SDK 会尝试与服务器重连,通过此函数设置 SDK 重连次数。
返回值:
设置推流端重连间隔
Declared in KRtcEngine.java
支持版本: 6.0.0 及以上。
参数名 | 类型 | 描述 |
---|---|---|
count | int | 重连间隔 |
详情描述: 当 SDK 与服务器异常断开连接时,SDK 会尝试与服务器重连,通过此函数来设置两次重连间隔时间。
返回值:
获取当前直播推流状态。
Declared in KRtcEngine.java
支持版本: 6.0.0 及以上。
参数名 | 类型 | 描述 |
---|---|---|
channelId | String | 标识通话的频道名称,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符): • 26 个小写英文字母 a-z • 26 个大写英文字母 A-Z • 10 个数字 0-9 • 空格 • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", "," |
详情描述: 获取指定频道的当前直播推流状态。
返回值:
启用音频模块。
Declared in KRtcEngine.java
支持版本: 6.0.0 及以上。
详情描述: 本方法可以启用音频模块(音频模块默认为开启状态)。该方法与 disableAudio 相对应,如果之前调用过 disableAudio 禁用了音频功能,可以用通过该方法来恢复。
注意事项: 该接口只能在 startPush 之前调用,如果上一次直播调用过 disableAudio, 而本次直播需要开启音频功能,则需要调用该接口。
返回值:
关闭音频模块。
Declared in KRtcEngine.java
支持版本: 6.0.0 及以上。
详情描述: 关闭音频模块。该方法与 enableAudio 相对应,会禁用音频模块。
注意事项: 该接口只能在 startPush 之前调用,如果确定本次直播全程是一个纯视频的直播,可以在 startPush 之前调用该接口,从而禁用音频模块,减少内存占用。在开播之后调用会导致直播流异常。
返回值:
设置音频编码参数。
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
channelid | String | 标识通话的频道名称,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符): • 26 个小写英文字母 a-z • 26 个大写英文字母 A-Z • 10 个数字 0-9 • 空格 • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", "," |
profile | @LiveAudioProfile int | 设置采样率,码率,编码模式和声道数,详细定义见 LiveAudioProfile。 |
调用时机: 该方法需要在 startPush 之前设置好,startPush 之后设置不生效。
返回值: 调用是否成功 0: 成功, <0: 失败。
调节麦克风采集信号音量。
Declared in KRtcEngine.java
支持版本: 6.0.0 及以上。
参数名 | 类型 | 描述 |
---|---|---|
volume | int | 麦克风采集信号音量。取值范围为[0,100],其中: • 0: 静音。 • 100:(默认)原始音量。 |
详情描述: 该方法可让用户调整本地麦克风采集信号的音量。
调用时机: 该方法在加入频道前后都能调用。
注意事项: 开启或关闭音频采集不会影响该音量。
返回值:
开启本地音频采集。
Declared in KRtcEngine.java
支持版本: 6.0.0 及以上。
详情描述:
调用时机:
返回值:
关闭本地音频采集。
Declared in KRtcEngine.java
支持版本: 6.0.0 及以上。
详情描述: 关闭本地音频采集。当 App 加入频道时,默认是开启麦克风采集功能的;该方法可以关闭麦克风采集,但是仍然会发送静音的音频数据,适用于直播过程中需要临时闭麦的场景。
调用时机:
返回值:
开启耳返功能。
Declared in KRtcEngine.java
支持版本: 6.0.0 及以上
详情描述: 用户可通过该方法打开耳返功能,该方法与 disableInEarMonitoring 相对应。
调用时机:
注意事项:
使用限制: 观众身份不支持对耳返进行设置。
返回值:
关闭耳返功能。
Declared in KRtcEngine.java
支持版本: 6.0.0 及以上
详情描述: 用户可通过该方法关闭耳返功能,该方法与 enableInEarMonitoring 相对应。
调用时机:
使用限制: 观众身份不支持对耳返进行设置。
返回值:
设置耳返音量。
Declared in KRtcEngine.java
支持版本: 6.0.0 及以上
参数名 | 类型 | 描述 |
---|---|---|
volume | int | 耳返音量。取值范围为[0,100],其中: • 0: 静音 • 100:(默认)原始音量 |
详情描述: 用户可通过该方法设置耳返音量。
调用时机: 该方法在加入频道前后都能调用。
注意事项:
返回值:
设置本地语音变声
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
voicechanger | @VoiceEffectOption int | 本地语音的变声选项 |
返回值: 调用是否成功 0: 成功, <0: 失败
设置本地音效混响
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
reverblevel | @ReverbLevel int | 需要设置的音效混响 |
返回值: 调用是否成功 0: 成功, <0: 失败
启用外部音频输入,该接口仅支持在 startPush 之前调用。
Declared in KRtcEngine.java
禁用外部音频输入
Declared in KRtcEngine.java
推送外部音频帧
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
frame | ExternalAudioFrame | 外部音频帧 |
返回值: true:该帧推送成功, false:该帧推送不成功
启用用户音量提示。
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
interval | int | 定期反馈音量的时间间隔,单位为毫秒。 |
详情描述: 该方法与 disableAudioVolumeIndication 相对应,定期向应用反馈当前说话的音量,调用该方法后,sdk 会按照设置的时间间隔触发 onAudioVolumeIndication 回调。
返回值: 调用是否成功 0: 成功, <0: 失败
禁用用户音量提示。
Declared in KRtcEngine.java
详情描述: 该方法与 enableAudioVolumeIndication 相对应,停止 sdk 向应用反馈当前说话者音量。
返回值: 调用是否成功 0: 成功, <0: 失败
启用视频模块。
Declared in KRtcEngine.java
详情描述: 本方法可以启用视频模块(视频模块默认为开启状态)。该方法与 disableVideo 相对应,如果之前调用过 disableVideo 禁用了视频功能,可以用通过该方法来恢复。 该方法不会开启camera,如果需要开启camera,请调用enableLocalVideo。
注意事项: 该接口只能在 startPush 之前调用,如果上一次直播调用过 disableVideo, 而本次直播需要开启视频功能,则需要调用该接口。
返回值: 调用是否成功, 0: 成功, <0: 失败。
关闭视频模块。
Declared in KRtcEngine.java
详情描述: 关闭视频模块。该方法与 enableVideo 相对应,会禁用视频模块。
注意事项: 该接口只能在 startPush 之前调用,如果确定本次直播全程是一个纯音频的直播,可以在 startPush 之前调用该接口,从而禁用视频模块,减少内存占用。在开播之后调用会导致直播流异常。
返回值: 调用是否成功, 0: 成功, <0: 失败。
开启本地视频采集,调用此方法会开启摄像头采集设备。
Declared in KRtcEngine.java
返回值: 调用是否成功, 0: 成功, <0: 失败。
关闭本地视频采集。
Declared in KRtcEngine.java
详情描述: 关闭本地视频采集,调用此方法会停止摄像头采集设备,视频流会用黑屏数据代替。
返回值: 调用是否成功, 0: 成功, <0: 失败。
设置视频编码参数。
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
channelId | String | 频道ID。 |
config | VideoEncoderConfiguration | 视频编码参数。 |
返回值: 调用是否成功, 0: 成功, <0: 失败。
创建本端视频流 surface 类型的渲染视图。
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
context | Context | Android Activity 上下文。 |
返回值: 渲染视图
创建本端视频流 texture 类型的渲染视图。
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
context | Context | Android Activity 上下文。 |
返回值: 渲染视图
初始化本端视频渲染视图。
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
local | KVideoCanvas | 画布。 |
返回值: 调用是否成功 0: 成功, <0: 失败。
解绑本端视频渲染视图。
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
local | KVideoCanvas | 画布。 |
返回值: 调用是否成功 0: 成功, <0: 失败。
对自定义美颜之前的摄像头原始采集视频画面进行镜像
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
mode | int | 视频镜像。 |
返回值: 调用是否成功 0: 成功, <0: 失败。
对经过自定义美颜后的准备参与合流编码的摄像头路视频流进行镜像
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
enable | boolean | 视频是否镜像。 |
返回值: 调用是否成功 0: 成功, <0: 失败。
对经过自定义美颜后的准备本地预览画面进行镜像
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
rendermode | int | 视频显示模式。 |
ismirror | boolean | 视频是否镜像。 |
返回值: 调用是否成功 0: 成功, <0: 失败。
启动视频预览,调用该 API 前,需调用 enableLocalVideo 开启摄像头采集设备。
Declared in KRtcEngine.java
返回值: 调用是否成功 0: 成功, <0: 失败。
停止预览。
Declared in KRtcEngine.java
返回值: 调用是否成功 0: 成功, <0: 失败。
切换摄像头。
Declared in KRtcEngine.java
返回值: 调用是否成功 0: 成功, <0: 失败。
开始屏幕共享
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
channelid | NSString* | 频道ID |
mediaprojection | MediaProjection | 录屏权限 |
返回值: 调用是否成功 0: 成功, <0: 失败
结束屏幕共享
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
channelid | NSString* | 频道ID |
返回值: 调用是否成功 0: 成功, <0: 失败
启用外部视频输入
Declared in KRtcEngine.java
禁用外部视频输入
Declared in KRtcEngine.java
推送外部视频帧
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
frame | ExternalVideoFrame | 外部视频帧 |
返回值: true:该帧推送成功, false:该帧推送不成功
设置美颜效果选项
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
enable | boolean | 是否开启美颜 |
options | FaceBeautyOptions | 美颜参数 |
设置 App 退后台触发的推流模式。
Declared in KRtcEngine.java
支持版本: 6.0.0 及以上。
参数名 | 类型 | 描述 |
---|---|---|
mode | @BackgroundMode int | 后台推流模式 |
详情描述: 本方法可以用来设置 App 退后台触发的推流模式,当 APP 退后台时调用该方法通知 SDK 按指定的推流模式推音视频流。
通知 SDK APP 已经返回前台。
Declared in KRtcEngine.java
支持版本: 6.0.0 及以上。
详情描述: 如果 APP 退后台的时候调用了 onBackground 通知 SDK 设置了相应的推流模式,那么返回前台的时候需要调用该方法恢复退后台之前的推流状态。
启用图片推流
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
channelid | String | 频道ID |
bitmap | byte[] | 图片原始数据,仅支持 jpg 和 png 格式,宽高需要是偶数。 |
返回值: 调用是否成功 0: 成功, <0: 失败
停止图片推流
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
channelid | String | 频道ID |
返回值: 调用是否成功 0: 成功, <0: 失败
添加水印
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
image | byte[] | 水印图片原始数据,仅支持 jpg 和 png 格式,宽高需要是偶数。 |
x | float | 水印左上角横坐标[0.0, 1.0];假设推流分辨率为:540 × 960,该字段设置为:0.1,则水印的实际像素横坐标为:540 × 0.1。 |
y | float | 水印左上角纵坐标[0.0, 1.0];假设推流分辨率为:540 × 960,该字段设置为:0.1,则水印的实际像素纵坐标为:960 × 0.1。 |
scale | float | 水印缩放比例(0.0, 1.0];假设推流分辨率为:540 × 960,该字段设置为:0.1,水印宽度为 540 × 0.1,水印高度会被自动计算。 |
详情描述: 设置指定的图片作为直播水印
返回值: 调用是否成功 >0: 成功,返回值表示当前添加的水印 ID,可以通过这个 ID 调用 RemoveWatermakkr 删除指定的水印, <0: 失败
移除水印
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
watermarkid | int | 水印 ID,成功调用 AddWatermark 时的返回值。 |
详情描述: 移除指定 ID 的水印
返回值: 调用是否成功 0: 成功, <0: 失败
开始网络质量检测
Declared in KRtcEngine.java
详情描述: 在直播过程中调用该方法会开启网络质量检测功能,每 2 秒回调一次 onNetworkQuality 报告当前网络质量。
返回值: 调用是否成功 0: 成功, <0: 失败
停止网络质量检测
Declared in KRtcEngine.java
详情描述: 调用该方法后会停止网络质量检测功能。
返回值: 调用是否成功 0: 成功, <0: 失败
获取当前媒体时间戳
Declared in KRtcEngine.java
详情描述: 获取当前媒体时间戳, 用于外部音视频帧中的timestamp。
返回值: 返回当前媒体时间戳。
发送自定义的 SEI 消息
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
channelId | String | 频道ID |
data | byte[] | 发送的数据,最大长度为 1000字节。 |
repeatCount | int | 发送数据次数 |
返回值: 调用是否成功, 0: 成功, <0: 失败
调整摄像头的焦距
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
distance | float | 焦距大小,取值范围:1 - 5,默认值建议设置为1即可 |
返回值: 调用是否成功, 0: 成功, <0: 失败
打开后置摄像头旁边的闪光灯
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
enable | boolean | true:打开;false:关闭。 |
返回值: 调用是否成功, 0: 成功, <0: 失败
设置时钟,用于计算直播延时。
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
epochms | long | epoch 时钟,单位是毫秒。 |
返回值: 调用是否成功, 0: 成功, <0: 失败
设置本端视频预览旋转角度,该接口仅能够改变主播本地预览画面的方向,而不会改变观众端的画面效果。
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
rotation | int | 取值为0、90、180和270(其他值无效),表示主播端摄像头预览视频的顺时针旋转角度。 |
返回值: 调用是否成功, 0: 成功, <0: 失败
推流过程中本地截图
Declared in KRtcEngine.java
设置自定义MetaData
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
metadata | HashMap<String,String> | 非空metaData键值对 |
开启/关闭自定义视频处理
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
enable | boolean | 开关 |
isUseNewTexture | boolean | true: 输出纹理使用第三方美颜生成的新纹理 false: 使用sdk的纹理 |
注册原始媒体数据观测器
Declared in KRtcEngine.java
参数名 | 类型 | 描述 |
---|---|---|
observer | IMediaFrameObserver | 原始媒体数据观测器 |
直播推流状态回调。
Declared in IKRtcEngineEventHandler.java
参数名 | 类型 | 描述 |
---|---|---|
channelId | String | “频道 id。" |
state | @PushStreamState int | 当前推流状态,请参考 PushStreamState。 |
error | @PushStreamError int | 推流初始时给出的错误码,请参考 PushStreamError。 |
详情描述: 直播推流状态改变时会回调该接口,发生错误时,会有相应错误码。
报告当前网络质量。
Declared in IKRtcEngineEventHandler.java
参数名 | 类型 | 描述 |
---|---|---|
channelId | String | “频道 id。" |
userId | String | 用户 id。 |
txQuality | @NetworkQuality int | 上行网络质量。 |
rxQuality | @NetworkQuality int | 下行网络质量。 |
详情描述: 当调用 startNetworkProbeTest 方法后,会每 2秒 回调一次该方法报告当前网络质量。
报告当前直播推流相关指标。
Declared in IKRtcEngineEventHandler.java
参数名 | 类型 | 描述 |
---|---|---|
stats | KPushStats | 推流指标。 |
详情描述: 直播推流成功后,会每 2秒 回调一次该方法报告当前推流相关指标。
用户音量提示回调。
Declared in IKRtcEngineEventHandler.java
参数名 | 类型 | 描述 |
---|---|---|
audiovolumeinfo | KRtcEngineAudioVolumeInfo[] | 用户音量信息,直播场景只有本端音量信息。 |
详情描述: 该回调默认禁用,您可以通过 enableAudioVolumeIndication 开启,开启后,SDK 会按照在 enableAudioVolumeIndication 中设置的时间间隔触发该回调。
推流过程中本地截图回调。
Declared in IKRtcEngineEventHandler.java
参数名 | 类型 | 描述 |
---|---|---|
bmp | Bitmap | 截图保存对象 |
打开摄像头成功回调。
Declared in IKRtcEngineEventHandler.java
视频编码器启动回调。
Declared in IKRtcEngineEventHandler.java
参数名 | 类型 | 描述 |
---|---|---|
channelId | String | 房间 ID |
首帧视频发送成功的回调通知
Declared in IKRtcEngineEventHandler.java
参数名 | 类型 | 描述 |
---|---|---|
elapse | int | 从本地开始推流到发生此事件过去的时间(毫秒) |
用于对接第三方美颜组件的视频处理回调
Declared in IMediaFrameObserver.java
参数名 | 类型 | 描述 |
---|---|---|
srcframe | RawVideoFrame | 用于承载采集到的摄像头画面 |
dstframe | RawVideoFrame | 用于接收第三方美颜处理过的视频画面 |
返回值: 0: 使用第三方美颜。-1: 使用原始摄像头画面
SDK 内部的 OpenGL 环境的销毁通知
Declared in IMediaFrameObserver.java